Package Modelica.​Mechanics.​MultiBody.​Parts
Rigid components such as bodies with mass and inertia and massless rods

Information

Package Parts contains rigid components of a multi-body system. These components may be used to build up more complicated structures. For example, a part may be built up of a "Body" and of several "FixedTranslation" components.

Content

ModelDescription
Fixed Frame fixed in world frame at a given position. It is visualized with a shape, see shapeType below (the frames on the two sides do not belong to the component):
 
model Parts.Fixed
FixedTranslation Fixed translation of frame_b with respect to frame_a. It is visualized with a shape, see shapeType below (the frames on the two sides do not belong to the component):
 
model Parts.FixedTranslation
FixedRotation Fixed translation and fixed rotation of frame_b with respect to frame_a It is visualized with a shape, see shapeType below (the frames on the two sides do not belong to the component):
 
model Parts.FixedRotation
Body Rigid body with mass, inertia tensor and one frame connector. It is visualized with a cylinder and a sphere at the center of mass:
 
model Parts.Body
BodyShape Rigid body with mass, inertia tensor, different shapes (see shapeType below) for animation, and two frame connectors:
 
model Parts.BodyShape
Fixed BodyBox Rigid body with box shape (mass and animation properties are computed from box data and from density):
 
model Parts.BodyBox
BodyCylinder Rigid body with cylinder shape (mass and animation properties are computed from cylinder data and from density):
 
model Parts.BodyCylinder
PointMass Rigid body where inertia tensor and rotation is neglected:
 
model Parts.PointMass
Mounting1D Propagate 1-dim. support torque to 3-dim. system
Rotor1D 1D inertia attachable on 3-dim. bodies (without neglecting dynamic effects)
model Parts.Rotor1D
BevelGear1D 1D gearbox with arbitrary shaft directions (3D bearing frame)

Components Fixed, FixedTranslation, FixedRotation and BodyShape are visualized according to parameter shapeType, that may have the following values (e.g., shapeType = "box"):
 

model Visualizers.FixedShape

All the details of the visualization shape parameters are given in Visualizers.FixedShape

Colors in all animation parts are defined via parameter color. This is an Integer vector with 3 elements, {r, g, b}, and specifies the color of the shape. {r,g,b} are the "red", "green" and "blue" color parts, given in the ranges 0 .. 255, respectively. The predefined type MultiBody.Types.Color contains a menu definition of the colors used in the MultiBody library (this will be replaced by a color editor).

Extends from Modelica.​Icons.​Package (Icon for standard packages).

Package Contents

NameDescription
BevelGear1D1D gearbox with arbitrary shaft directions and 3-dim. bearing frame (3D dynamic effects are taken into account provided world.driveTrainMechanics3D=true)
BodyRigid body with mass, inertia tensor and one frame connector (12 potential states)
BodyBoxRigid body with box shape. Mass and animation properties are computed from box data and density (12 potential states)
BodyCylinderRigid body with cylinder shape. Mass and animation properties are computed from cylinder data and density (12 potential states)
BodyShapeRigid body with mass, inertia tensor, different shapes for animation, and two frame connectors (12 potential states)
FixedFrame fixed in the world frame at a given position
FixedRotationFixed translation followed by a fixed rotation of frame_b with respect to frame_a
FixedTranslationFixed translation of frame_b with respect to frame_a
Mounting1DPropagate 1-dim. support torque to 3-dim. system (provided world.driveTrainMechanics3D=true)
PointMassRigid body where body rotation and inertia tensor is neglected (6 potential states)
RollingWheelIdeal rolling wheel on flat surface z=0 (5 positional, 3 velocity degrees of freedom)
RollingWheelSetIdeal rolling wheel set consisting of two ideal rolling wheels connected together by an axis
Rotor1D1D inertia attachable on 3-dim. bodies (3D dynamic effects are taken into account if world.driveTrainMechanics3D=true)

Model Modelica.​Mechanics.​MultiBody.​Parts.​Fixed
Frame fixed in the world frame at a given position

Information

Element consisting of a frame (frame_b) that is fixed in the world frame at a given position defined by parameter vector r (vector from origin of world frame to frame_b, resolved in the world frame).

By default, this component is visualized by a cylinder connecting the world frame and frame_b of this components, as shown in the figure below. Note, that the visualized world frame on the left side and Fixed.frame_b on the right side are not part of the component animation and that the animation may be switched off via parameter animation = false.

Parts.Fixed

Parameters

TypeNameDefaultDescription
Booleananimationtrue= true, if animation shall be enabled
Positionr[3]{0, 0, 0}Position vector from world frame to frame_b, resolved in world frame
ShapeTypeshapeType"cylinder"Type of shape
Positionr_shape[3]{0, 0, 0}Vector from world frame to shape origin, resolved in world frame
AxislengthDirection[3]to_unit1(r - r_shape)Vector in length direction of shape, resolved in world frame
AxiswidthDirection[3]{0, 1, 0}Vector in width direction of shape, resolved in world frame
LengthlengthModelica.Math.Vectors.length(r - r_shape)Length of shape
Distancewidthlength / world.defaultWidthFractionWidth of shape
DistanceheightwidthHeight of shape
ShapeExtraextra0Additional parameter for cone, pipe etc. (see docu of Visualizers.Advanced.Shape)

Connectors

TypeNameDescription
Frame_bframe_bCoordinate system fixed in the world frame

Model Modelica.​Mechanics.​MultiBody.​Parts.​FixedTranslation
Fixed translation of frame_b with respect to frame_a

Information

Component for a fixed translation of frame_b with respect to frame_a, i.e., the relationship between connectors frame_a and frame_b remains constant and frame_a is always parallel to frame_b.

By default, this component is visualized by a cylinder connecting frame_a and frame_b, as shown in the figure below. Note, that the two visualized frames are not part of the component animation and that the animation may be switched off via parameter animation = false.

Parts.FixedTranslation

Parameters

TypeNameDefaultDescription
Booleananimationtrue= true, if animation shall be enabled
Positionr[3] Vector from frame_a to frame_b resolved in frame_a
ShapeTypeshapeType"cylinder"Type of shape
Positionr_shape[3]{0, 0, 0}Vector from frame_a to shape origin, resolved in frame_a
AxislengthDirection[3]to_unit1(r - r_shape)Vector in length direction of shape, resolved in frame_a
AxiswidthDirection[3]{0, 1, 0}Vector in width direction of shape, resolved in frame_a
LengthlengthModelica.Math.Vectors.length(r - r_shape)Length of shape
Distancewidthlength / world.defaultWidthFractionWidth of shape
DistanceheightwidthHeight of shape
ShapeExtraextra0Additional parameter depending on shapeType (see docu of Visualizers.Advanced.Shape)

Connectors

TypeNameDescription
Frame_aframe_aCoordinate system fixed to the component with one cut-force and cut-torque
Frame_bframe_bCoordinate system fixed to the component with one cut-force and cut-torque

Model Modelica.​Mechanics.​MultiBody.​Parts.​FixedRotation
Fixed translation followed by a fixed rotation of frame_b with respect to frame_a

Information

Component for a fixed translation and fixed rotation of frame_b with respect to frame_a, i.e., the relationship between connectors frame_a and frame_b remains constant. There are several possibilities to define the orientation of frame_b with respect to frame_a:

By default, this component is visualized by a cylinder connecting frame_a and frame_b, as shown in the figure below. In this figure frame_b is rotated along the z-axis of frame_a with 60 degree. Note, that the two visualized frames are not part of the component animation and that the animation may be switched off via parameter animation = false.

Parts.FixedRotation

Parameters

TypeNameDefaultDescription
Booleananimationtrue= true, if animation shall be enabled
Positionr[3]{0, 0, 0}Vector from frame_a to frame_b resolved in frame_a
RotationTypesrotationTypeModelica.​Mechanics.​MultiBody.​Types.​RotationTypes.​RotationAxisType of rotation description
Axisn[3]{1, 0, 0}Axis of rotation in frame_a (= same as in frame_b)
Angle_degangle0Angle to rotate frame_a around axis n into frame_b
Axisn_x[3]{1, 0, 0}Vector along x-axis of frame_b resolved in frame_a
Axisn_y[3]{0, 1, 0}Vector along y-axis of frame_b resolved in frame_a
RotationSequencesequence[3]{1, 2, 3}Sequence of rotations
Angle_degangles[3]{0, 0, 0}Rotation angles around the axes defined in 'sequence'
ShapeTypeshapeType"cylinder"Type of shape
Positionr_shape[3]{0, 0, 0}Vector from frame_a to shape origin, resolved in frame_a
AxislengthDirection[3]to_unit1(r - r_shape)Vector in length direction of shape, resolved in frame_a
AxiswidthDirection[3]{0, 1, 0}Vector in width direction of shape, resolved in frame_a
LengthlengthModelica.Math.Vectors.length(r - r_shape)Length of shape
Distancewidthlength / world.defaultWidthFractionWidth of shape
DistanceheightwidthHeight of shape
ShapeExtraextra0Additional parameter depending on shapeType (see docu of Visualizers.Advanced.Shape)
final OrientationR_relif rotationType == Types.RotationTypes.RotationAxis then Frames.planarRotation(Modelica.Math.Vectors.normalizeWithAssert(n), Cv.from_deg(angle), 0) else if rotationType == Types.RotationTypes.TwoAxesVectors then Frames.from_nxy(n_x, n_y) else Frames.axesRotations(sequence, Cv.from_deg(angles), zeros(3))Fixed rotation object from frame_a to frame_b

Connectors

TypeNameDescription
Frame_aframe_aCoordinate system fixed to the component with one cut-force and cut-torque
Frame_bframe_bCoordinate system fixed to the component with one cut-force and cut-torque

Model Modelica.​Mechanics.​MultiBody.​Parts.​Body
Rigid body with mass, inertia tensor and one frame connector (12 potential states)

Information

Rigid body with mass and inertia tensor. All parameter vectors have to be resolved in frame_a. The inertia tensor has to be defined with respect to a coordinate system that is parallel to frame_a with the origin at the center of mass of the body.

By default, this component is visualized by a cylinder located between frame_a and the center of mass and by a sphere that has its center at the center of mass. If the cylinder length is smaller as the radius of the sphere, e.g., since frame_a is located at the center of mass, the cylinder is not displayed. Note, that the animation may be switched off via parameter animation = false.

Parts.Body

States of Body Components

Every body has potential states. If possible a tool will select the states of joints and not the states of bodies because this is usually the most efficient choice. In this case the position, orientation, velocity and angular velocity of frame_a of the body will be computed by the component that is connected to frame_a. However, if a body is moving freely in space, variables of the body have to be used as states. The potential states of the body are:

The quaternions have the slight disadvantage that there is a non-linear constraint equation between the 4 quaternions. Therefore, at least one non-linear equation has to be solved during simulation. A tool might, however, analytically solve this simple constraint equation. Using the 3 angles as states has the disadvantage that there is a singular configuration in which a division by zero will occur. If it is possible to determine in advance for an application class that this singular configuration is outside of the operating region, the 3 angles might be used as potential states by setting useQuaternions = false.

In text books about 3-dimensional mechanics often 3 angles and the angular velocity are used as states. This is not the case here, since 3 angles and their derivatives are used as potential states (if useQuaternions = false). The reason is that for real-time simulation the discretization formula of the integrator might be "inlined" and solved together with the body equations. By appropriate symbolic transformation the performance is drastically increased if angles and their derivatives are used as states, instead of angles and the angular velocity.

Whether or not variables of the body are used as states is usually automatically selected by the Modelica translator. If parameter enforceStates is set to true in the "Advanced" menu, then body variables are forced to be used as states according to the setting of parameters "useQuaternions" and "sequence_angleStates".

Parameters

TypeNameDefaultDescription
Booleananimationtrue= true, if animation shall be enabled (show cylinder and sphere)
Positionr_CM[3] Vector from frame_a to center of mass, resolved in frame_a
Massm Mass of rigid body
InertiaI_110.001(1,1) element of inertia tensor
InertiaI_220.001(2,2) element of inertia tensor
InertiaI_330.001(3,3) element of inertia tensor
InertiaI_210(2,1) element of inertia tensor
InertiaI_310(3,1) element of inertia tensor
InertiaI_320(3,2) element of inertia tensor
Booleanangles_fixedfalse= true, if angles_start are used as initial values, else as guess values
Angleangles_start[3]{0, 0, 0}Initial values of angles to rotate frame_a around 'sequence_start' axes into frame_b
RotationSequencesequence_start[3]{1, 2, 3}Sequence of rotations to rotate frame_a into frame_b at initial time
Booleanw_0_fixedfalse= true, if w_0_start are used as initial values, else as guess values
AngularVelocityw_0_start[3]{0, 0, 0}Initial or guess values of angular velocity of frame_a resolved in world frame
Booleanz_0_fixedfalse= true, if z_0_start are used as initial values, else as guess values
AngularAccelerationz_0_start[3]{0, 0, 0}Initial values of angular acceleration z_0 = der(w_0)
DiametersphereDiameterworld.​defaultBodyDiameterDiameter of sphere
DiametercylinderDiametersphereDiameter / Types.Defaults.BodyCylinderDiameterFractionDiameter of cylinder
BooleanenforceStatesfalse= true, if absolute variables of body object shall be used as states (StateSelect.always)
BooleanuseQuaternionstrue= true, if quaternions shall be used as potential states otherwise use 3 angles as potential states
RotationSequencesequence_angleStates[3]{1, 2, 3}Sequence of rotations to rotate world frame into frame_a around the 3 angles used as potential states
final InertiaI[3,3][I_11,I_21,I_31; I_21,I_22,I_32; I_31,I_32,I_33]inertia tensor
final OrientationR_startModelica.Mechanics.MultiBody.Frames.axesRotations(sequence_start, angles_start, zeros(3))Orientation object from world frame to frame_a at initial time
final AngularAccelerationz_a_start[3]Frames.resolve2(R_start, z_0_start)Initial values of angular acceleration z_a = der(w_a), i.e., time derivative of angular velocity resolved in frame_a

Connectors

TypeNameDescription
Frame_aframe_aCoordinate system fixed at body

Model Modelica.​Mechanics.​MultiBody.​Parts.​BodyShape
Rigid body with mass, inertia tensor, different shapes for animation, and two frame connectors (12 potential states)

Information

Rigid body with mass and inertia tensor and two frame connectors. All parameter vectors have to be resolved in frame_a. The inertia tensor has to be defined with respect to a coordinate system that is parallel to frame_a with the origin at the center of mass of the body. The coordinate system frame_b is always parallel to frame_a.

By default, this component is visualized by any shape that can be defined with Modelica.Mechanics.MultiBody.Visualizers.FixedShape. This shape is placed between frame_a and frame_b (default: length(shape) = Frames.length(r)). Additionally a sphere may be visualized that has its center at the center of mass. Note, that the animation may be switched off via parameter animation = false.

Parts.BodyShape

The following shapes can be defined via parameter shapeType, e.g., shapeType="cone":

Visualizers.FixedShape

A BodyShape component has potential states. For details of these states and of the "Advanced" menu parameters, see model MultiBody.Parts.Body.

Parameters

TypeNameDefaultDescription
Booleananimationtrue= true, if animation shall be enabled (show shape between frame_a and frame_b and optionally a sphere at the center of mass)
BooleananimateSpheretrue= true, if mass shall be animated as sphere provided animation=true
Positionr[3] Vector from frame_a to frame_b resolved in frame_a
Positionr_CM[3] Vector from frame_a to center of mass, resolved in frame_a
Massm Mass of rigid body
InertiaI_110.001(1,1) element of inertia tensor
InertiaI_220.001(2,2) element of inertia tensor
InertiaI_330.001(3,3) element of inertia tensor
InertiaI_210(2,1) element of inertia tensor
InertiaI_310(3,1) element of inertia tensor
InertiaI_320(3,2) element of inertia tensor
Booleanangles_fixedfalse= true, if angles_start are used as initial values, else as guess values
Angleangles_start[3]{0, 0, 0}Initial values of angles to rotate frame_a around 'sequence_start' axes into frame_b
RotationSequencesequence_start[3]{1, 2, 3}Sequence of rotations to rotate frame_a into frame_b at initial time
Booleanw_0_fixedfalse= true, if w_0_start are used as initial values, else as guess values
AngularVelocityw_0_start[3]{0, 0, 0}Initial or guess values of angular velocity of frame_a resolved in world frame
Booleanz_0_fixedfalse= true, if z_0_start are used as initial values, else as guess values
AngularAccelerationz_0_start[3]{0, 0, 0}Initial values of angular acceleration z_0 = der(w_0)
ShapeTypeshapeType"cylinder"Type of shape
Positionr_shape[3]{0, 0, 0}Vector from frame_a to shape origin, resolved in frame_a
AxislengthDirection[3]to_unit1(r - r_shape)Vector in length direction of shape, resolved in frame_a
AxiswidthDirection[3]{0, 1, 0}Vector in width direction of shape, resolved in frame_a
LengthlengthModelica.Math.Vectors.length(r - r_shape)Length of shape
Distancewidthlength / world.defaultWidthFractionWidth of shape
DistanceheightwidthHeight of shape
ShapeExtraextra0Additional parameter depending on shapeType (see docu of Visualizers.Advanced.Shape)
DiametersphereDiameter2 * widthDiameter of sphere
BooleanenforceStatesfalse= true, if absolute variables of body object shall be used as states (StateSelect.always)
BooleanuseQuaternionstrue= true, if quaternions shall be used as potential states otherwise use 3 angles as potential states
RotationSequencesequence_angleStates[3]{1, 2, 3}Sequence of rotations to rotate world frame into frame_a around the 3 angles used as potential states

Connectors

TypeNameDescription
Frame_aframe_aCoordinate system fixed to the component with one cut-force and cut-torque
Frame_bframe_bCoordinate system fixed to the component with one cut-force and cut-torque

Model Modelica.​Mechanics.​MultiBody.​Parts.​BodyBox
Rigid body with box shape. Mass and animation properties are computed from box data and density (12 potential states)

Information

Rigid body with box shape. The mass properties of the body (mass, center of mass, inertia tensor) are computed from the box data. Optionally, the box may be hollow. The (outer) box shape is by default used in the animation. The hollow part is not shown in the animation. The two connector frames frame_a and frame_b are always parallel to each other. Example of component animation (note, that the animation may be switched off via parameter animation = false):

Parts.BodyBox

A BodyBox component has potential states. For details of these states and of the "Advanced" menu parameters, see model MultiBody.Parts.Body.

Parameters

TypeNameDefaultDescription
Booleananimationtrue= true, if animation shall be enabled (show box between frame_a and frame_b)
Positionr[3] Vector from frame_a to frame_b resolved in frame_a
Positionr_shape[3]{0, 0, 0}Vector from frame_a to box origin, resolved in frame_a
AxislengthDirection[3]to_unit1(r - r_shape)Vector in length direction of box, resolved in frame_a
AxiswidthDirection[3]{0, 1, 0}Vector in width direction of box, resolved in frame_a
LengthlengthModelica.Math.Vectors.length(r - r_shape)Length of box
Distancewidthlength / world.defaultWidthFractionWidth of box
DistanceheightwidthHeight of box
DistanceinnerWidth0Width of inner box surface (0 <= innerWidth <= width)
DistanceinnerHeightinnerWidthHeight of inner box surface (0 <= innerHeight <= height)
Densitydensity7700Density of cylinder (e.g., steel: 7700 .. 7900, wood : 400 .. 800)
Booleanangles_fixedfalse= true, if angles_start are used as initial values, else as guess values
Angleangles_start[3]{0, 0, 0}Initial values of angles to rotate frame_a around 'sequence_start' axes into frame_b
RotationSequencesequence_start[3]{1, 2, 3}Sequence of rotations to rotate frame_a into frame_b at initial time
Booleanw_0_fixedfalse= true, if w_0_start are used as initial values, else as guess values
AngularVelocityw_0_start[3]{0, 0, 0}Initial or guess values of angular velocity of frame_a resolved in world frame
Booleanz_0_fixedfalse= true, if z_0_start are used as initial values, else as guess values
AngularAccelerationz_0_start[3]{0, 0, 0}Initial values of angular acceleration z_0 = der(w_0)
BooleanenforceStatesfalse= true, if absolute variables of body object shall be used as states (StateSelect.always)
BooleanuseQuaternionstrue= true, if quaternions shall be used as potential states otherwise use 3 angles as potential states
RotationSequencesequence_angleStates[3]{1, 2, 3}Sequence of rotations to rotate world frame into frame_a around the 3 angles used as potential states
final Massmodensity * length * width * heightMass of box without hole
final Massmidensity * length * innerWidth * innerHeightMass of hole of box
final Massmmo - miMass of box
final OrientationRFrames.from_nxy(r, widthDirection)Orientation object from frame_a to coordinates system spanned by r and widthDirection
final Positionr_CM[3]r_shape + 0.5 * (normalizeWithAssert(lengthDirection) * length)Position vector from origin of frame_a to center of mass, resolved in frame_a
final InertiaI[3,3]Frames.resolveDyade1(R, diagonal(0.083333333333333 * {mo * (width * width + height * height) - mi * (innerWidth * innerWidth + innerHeight * innerHeight), mo * (length * length + height * height) - mi * (length * length + innerHeight * innerHeight), mo * (length * length + width * width) - mi * (length * length + innerWidth * innerWidth)}))Inertia tensor of body box with respect to center of mass, parallel to frame_a

Connectors

TypeNameDescription
Frame_aframe_aCoordinate system fixed to the component with one cut-force and cut-torque
Frame_bframe_bCoordinate system fixed to the component with one cut-force and cut-torque

Model Modelica.​Mechanics.​MultiBody.​Parts.​BodyCylinder
Rigid body with cylinder shape. Mass and animation properties are computed from cylinder data and density (12 potential states)

Information

Rigid body with cylinder shape. The mass properties of the body (mass, center of mass, inertia tensor) are computed from the cylinder data. Optionally, the cylinder may be hollow. The cylinder shape is by default used in the animation. The two connector frames frame_a and frame_b are always parallel to each other. Example of component animation (note, that the animation may be switched off via parameter animation = false):

Parts.BodyCylinder

A BodyCylinder component has potential states. For details of these states and of the "Advanced" menu parameters, see model MultiBody.Parts.Body.

Parameters

TypeNameDefaultDescription
Booleananimationtrue= true, if animation shall be enabled (show cylinder between frame_a and frame_b)
Positionr[3] Vector from frame_a to frame_b, resolved in frame_a
Positionr_shape[3]{0, 0, 0}Vector from frame_a to cylinder origin, resolved in frame_a
AxislengthDirection[3]to_unit1(r - r_shape)Vector in length direction of cylinder, resolved in frame_a
LengthlengthModelica.Math.Vectors.length(r - r_shape)Length of cylinder
Distancediameterlength / world.defaultWidthFractionDiameter of cylinder
DistanceinnerDiameter0Inner diameter of cylinder (0 <= innerDiameter <= Diameter)
Densitydensity7700Density of cylinder (e.g., steel: 7700 .. 7900, wood : 400 .. 800)
Booleanangles_fixedfalse= true, if angles_start are used as initial values, else as guess values
Angleangles_start[3]{0, 0, 0}Initial values of angles to rotate frame_a around 'sequence_start' axes into frame_b
RotationSequencesequence_start[3]{1, 2, 3}Sequence of rotations to rotate frame_a into frame_b at initial time
Booleanw_0_fixedfalse= true, if w_0_start are used as initial values, else as guess values
AngularVelocityw_0_start[3]{0, 0, 0}Initial or guess values of angular velocity of frame_a resolved in world frame
Booleanz_0_fixedfalse= true, if z_0_start are used as initial values, else as guess values
AngularAccelerationz_0_start[3]{0, 0, 0}Initial values of angular acceleration z_0 = der(w_0)
BooleanenforceStatesfalse= true, if absolute variables of body object shall be used as states (StateSelect.always)
BooleanuseQuaternionstrue= true, if quaternions shall be used as potential states otherwise use 3 angles as potential states
RotationSequencesequence_angleStates[3]{1, 2, 3}Sequence of rotations to rotate world frame into frame_a around the 3 angles used as potential states
final Distanceradius0.5 * diameterRadius of cylinder
final DistanceinnerRadius0.5 * innerDiameterInner-Radius of cylinder
final Massmodensity * pi * length * radius * radiusMass of cylinder without hole
final Massmidensity * pi * length * innerRadius * innerRadiusMass of hole of cylinder
final InertiaI220.083333333333333 * (mo * (length * length + 3 * radius * radius) - mi * (length * length + 3 * innerRadius * innerRadius))Inertia with respect to axis through center of mass, perpendicular to cylinder axis
final Massmmo - miMass of cylinder
final OrientationRFrames.from_nxy(r, {0, 1, 0})Orientation object from frame_a to frame spanned by cylinder axis and axis perpendicular to cylinder axis
final Positionr_CM[3]r_shape + 0.5 * (normalizeWithAssert(lengthDirection) * length)Position vector from frame_a to center of mass, resolved in frame_a
final InertiaI[3,3]Frames.resolveDyade1(R, diagonal({0.5 * (mo * radius * radius - mi * innerRadius * innerRadius), I22, I22}))Inertia tensor of cylinder with respect to center of mass, resolved in frame parallel to frame_a

Connectors

TypeNameDescription
Frame_aframe_aCoordinate system fixed to the component with one cut-force and cut-torque
Frame_bframe_bCoordinate system fixed to the component with one cut-force and cut-torque

Model Modelica.​Mechanics.​MultiBody.​Parts.​PointMass
Rigid body where body rotation and inertia tensor is neglected (6 potential states)

Information

Rigid body where the inertia tensor is neglected. This body is solely defined by its mass. By default, this component is visualized by a sphere that has its center at frame_a. Note, that the animation may be switched off via parameter animation = false.

Every PointMass has potential states. If possible a tool will select the states of joints and not the states of PointMass because this is usually the most efficient choice. In this case the position and velocity of frame_a of the body will be computed by the component that is connected to frame_a. However, if a PointMass is moving freely in space, variables of the PointMass have to be used as states. The potential states are: The position vector frame_a.r_0 from the origin of the world frame to the origin of frame_a of the body, resolved in the world frame and the absolute velocity v_0 of the origin of frame_a, resolved in the world frame (= der(frame_a.r_0)).

Whether or not variables of the body are used as states is usually automatically selected by the Modelica translator. If parameter enforceStates is set to true in the "Advanced" menu, then PointMass variables frame_a.r_0 and der(frame_a.r_0) are forced to be used as states.

Parameters

TypeNameDefaultDescription
Booleananimationtrue= true, if animation shall be enabled (show sphere)
Massm Mass of mass point
StateSelectstateSelectStateSelect.​avoidPriority to use frame_a.r_0, v_0 (= der(frame_a.r_0)) as states

Connectors

TypeNameDescription
Frame_aframe_aCoordinate system fixed at center of mass point

Model Modelica.​Mechanics.​MultiBody.​Parts.​Mounting1D
Propagate 1-dim. support torque to 3-dim. system (provided world.driveTrainMechanics3D=true)

Information

This component is used to acquire support torques from a 1-dim.-rotational mechanical system (e.g., components from Modelica.Mechanics.Rotational) and to propagate them to a carrier body.

The 1-dim. support torque at flange_b is transformed into 3-dim. space under consideration of the rotation axis, parameter n, which has to be given in the local coordinate system of frame_a.

All components of a 1-dim.-rotational mechanical system that are connected to a common Mounting1D element need to have the same axis of rotation along parameter vector n. This means that, e.g., bevel gears where the axis of rotation of flange_a and flange_b are different cannot be described properly by connecting to the Mounting1D component. In this case, a combination of several Mounting1D components or the component BevelGear1D should be used.

Reference
Schweiger, Christian ; Otter, Martin: Modelling 3D Mechanical Effects of 1-dim. Powertrains. In: Proceedings of the 3rd International Modelica Conference. Linköping : The Modelica Association and Linköping University, November 3-4, 2003, pp. 149-158

Parameters

TypeNameDefaultDescription
Anglephi00Fixed offset angle of housing
Axisn[3]{1, 0, 0}Axis of rotation = axis of support torque (resolved in frame_a)

Connectors

TypeNameDescription
Flange_bflange_b(right) flange fixed in housing
Frame_aframe_aFrame in which housing is fixed (connector is removed, if world.driveTrainMechanics3D=false)

Model Modelica.​Mechanics.​MultiBody.​Parts.​Rotor1D
1D inertia attachable on 3-dim. bodies (3D dynamic effects are taken into account if world.driveTrainMechanics3D=true)

Information

This component is used to model the gyroscopic torques exerted by a 1-dim. inertia (so called rotor) on its 3-dim. carrier body. Gyroscopic torques appear, if the vector of the carrier body's angular velocity is not parallel to the vector of the rotor's axis. The axis of rotation of the rotor is defined by the parameter n, which has to be given in the local coordinate system of frame_a. The default animation of this component is shown in the figure below.

model Parts.Rotor1D

This component is a replacement for Modelica.Mechanics.Rotational.Components.Inertia for the case, that a 1-dim.-rotational mechanical system should be attached with a 3-dim. carrier body.

The Boolean parameter exact was introduced due to performance reasons. If exact is set to false, the influence of the carrier body motion on the angular velocity of the rotor is neglected. This influence is usually negligible if the 1-dim.-rotational mechanical system accelerates much faster as the base body (this is, e.g., the case in vehicle powertrains). The essential advantage is that an algebraic loop is removed since then there is only an action on acceleration level from the powertrain to the base body but not vice versa.

Reference
Schweiger, Christian ; Otter, Martin: Modelling 3D Mechanical Effects of 1-dim. Powertrains. In: Proceedings of the 3rd International Modelica Conference. Linköping : The Modelica Association and Linköping University, November 3-4, 2003, pp. 149-158

Parameters

TypeNameDefaultDescription
Booleananimationtrue= true, if animation shall be enabled (show rotor as cylinder)
InertiaJ Moment of inertia of rotor around its axis of rotation
Axisn[3]{1, 0, 0}Axis of rotation resolved in frame_a
Positionr_center[3]zeros(3)Position vector from origin of frame_a to center of cylinder
DistancecylinderLength2 * world.defaultJointLengthLength of cylinder representing the rotor
DistancecylinderDiameter2 * world.defaultJointWidthDiameter of cylinder representing the rotor
StateSelectstateSelectStateSelect.​defaultPriority to use rotor angle (phi) and rotor speed (w) as states
Booleanexacttrue= true, if exact calculations; false if influence of bearing on rotor acceleration is neglected to avoid an algebraic loop

Connectors

TypeNameDescription
Flange_aflange_a(left) driving flange (flange axis directed INTO cut plane)
Flange_bflange_b(right) driven flange (flange axis directed OUT OF cut plane)
Frame_aframe_aFrame in which rotor housing is fixed (connector is removed, if world.driveTrainMechanics3D=false)

Model Modelica.​Mechanics.​MultiBody.​Parts.​BevelGear1D
1D gearbox with arbitrary shaft directions and 3-dim. bearing frame (3D dynamic effects are taken into account provided world.driveTrainMechanics3D=true)

Information

This component is used to model a 1-dim. gearbox with non-parallel axes (defined by parameters n_a, n_b). A 3-dim. bearing frame is necessary to reflect the correct support torque, as the axes of rotation of flange_a and flange_b and the direction of the support torque vector are different in general.

Note: The name BevelGear1D is kept only for simplicity. Regardless, this component could be used to model any kind of gearbox with non-parallel axes. For a usage example, see Examples.Rotational3DEffects.BevelGear1D.

Reference
Schweiger, Christian ; Otter, Martin: Modelling 3D Mechanical Effects of 1-dim. Powertrains. In: Proceedings of the 3rd International Modelica Conference. Linköping : The Modelica Association and Linköping University, November 3-4, 2003, pp. 149-158

Extends from Modelica.​Mechanics.​Rotational.​Interfaces.​PartialTwoFlanges (Partial model for a component with two rotational 1-dim. shaft flanges).

Parameters

TypeNameDefaultDescription
Realratio Gear speed ratio
Axisn_a[3]{1, 0, 0}Axis of rotation of flange_a, resolved in frame_a
Axisn_b[3]{1, 0, 0}Axis of rotation of flange_b, resolved in frame_a

Connectors

TypeNameDescription
Flange_aflange_aFlange of left shaft
Flange_bflange_bFlange of right shaft
Frame_aframe_aBearing frame

Model Modelica.​Mechanics.​MultiBody.​Parts.​RollingWheel
Ideal rolling wheel on flat surface z=0 (5 positional, 3 velocity degrees of freedom)

Information

A wheel rolling on the x-y plane of the world frame including wheel mass and simple visualization. The rolling contact is considered being ideal, i.e. there is no slip between the wheel and the ground. The wheel can not take off but it can incline toward the ground. The frame frame_a is placed in the wheel center point and rotates with the wheel itself. Therefore, a rotational joint with rotation axis n={0,1,0} should be used to connect the wheel to a carrier.

Note

To work properly, the gravity acceleration vector g of the world must point in the negative z-axis, i.e.

inner Modelica.Mechanics.MultiBody.World world(n={0,0,-1});

Parameters

TypeNameDefaultDescription
Booleananimationtrue= true, if animation of wheel shall be enabled
RadiuswheelRadius Radius of wheel
MasswheelMass Mass of wheel
Inertiawheel_I_axis Inertia along the wheel axis
Inertiawheel_I_long Inertia perpendicular to the wheel axis
StateSelectstateSelectStateSelect.​alwaysPriority to use generalized coordinates as states
Distancewidth0.035Width of wheel
RealhollowFraction0.81.0: Completely hollow, 0.0: rigid cylinder
ColorwheelColor[3]{30, 30, 30}Color of wheel

Connectors

TypeNameDescription
Frame_aframe_aFrame fixed in wheel center point (y-axis: along wheel axis, z-axis: upwards)

Model Modelica.​Mechanics.​MultiBody.​Parts.​RollingWheelSet
Ideal rolling wheel set consisting of two ideal rolling wheels connected together by an axis

Information

Two wheels are connected by an axis and can rotate around this axis. The wheels are rolling on the x-y plane of the world frame. The coordinate system attached to the center of the wheel axis (frameMiddle) is constrained so that it is always parallel to the x-y plane. If all generalized coordinates are zero, frameMiddle is parallel to the world frame.

Note

To work properly, the gravity acceleration vector g of the world must point in the negative z-axis, i.e.

inner Modelica.Mechanics.MultiBody.World world(n={0,0,-1});

Parameters

TypeNameDefaultDescription
Booleananimationtrue= true, if animation of wheel set shall be enabled
RadiuswheelRadius Radius of one wheel
MasswheelMass Mass of one wheel
Inertiawheel_I_axis Inertia along one wheel axis
Inertiawheel_I_long Inertia perpendicular to one wheel axis
DistancewheelDistance Distance between the two wheels
StateSelectstateSelectStateSelect.​alwaysPriority to use the generalized coordinates as states
DistancewheelWidth0.01Width of one wheel
RealhollowFraction0.81.0: Completely hollow, 0.0: rigid cylinder
ColorwheelColor[3]{30, 30, 30}Color of wheels

Connectors

TypeNameDescription
Frame_aframeMiddleFrame fixed in middle of axis connecting both wheels (y-axis: along wheel axis, z-axis: upwards)
Frame_aframe1Frame fixed in center point of left wheel (y-axis: along wheel axis, z-axis: upwards)
Frame_bframe2Frame fixed in center point of right wheel (y-axis: along wheel axis, z-axis: upwards)
Flange_aaxis11-dim. rotational flange that drives the left wheel
Flange_aaxis21-dim. rotational flange that drives the right wheel
Flange_bsupportSupport of 1D axes

Generated 2018-12-12 12:12:52 EST by MapleSim.